
# 模块和包
"""
定义 ： 就是一个.py文件 ,在此文件中主要编写了函数、类、方法等。

作用 ： 它也可以被其它文件所调用 ，从而可以使用内部的成员 。 必须先导入这个模块

如何导入 ：
    1. import 模块名
        优点 ： 一次性导入所有成员 ，里面的所有成员都可使用，使用起来那个都比较方便。
        缺点 ： 会占用更多的内存资源。
    2. from 模块名 import 成员名
        优点 ： 减少了内存占用，用啥导入啥 。
        缺点 ： 当进行引入大量的成员时，导入起来比较麻烦。

备注 ：
    当使用import导入时，使用它的成员必须在前面加上模块名，格式为： 模块名.成员


导入逻辑：
1. 首先会在本文件所在的路径下搜索模块 ，若找到了此模块，则进行导入 。
2. 若不在本路径下，去系统设置的环境变量里找 ，若找到了，也会导入。
3. 若在上面的路径都未搜索到，则导入失败 ，报错

说明 ：
 若你导入的不在同一路径下，则一定是从项目路径开始导入

# 包
定义 ： 就是一个特殊的目录 ，在此目录下有一个__init.py文件

作用 ： 当代码量最够多的时候，为了便于管理 ，就会使用包去分类管理 。

导入 ： 和模块的导入是一致的。

# 分类 ：
包括 ：系统模块(包) ， 第三方模块(包) ，自定义模块(包)
"""

# 第一种方式导入
# import demo15_oop
#
# print("在demo16_mod下调用其它模块")
# bug = demo15_oop.Bugs()
# print(bug.search_bug("数据显示错误"))

# 第二种方式导入 ：
from demo15_oop import Bugs
# from demo15_oop import Elevator
# from demo15_oop import *
import random
# import xys
from project01.iter01 import login



print("在demo16_mod下调用其它模块")
bug = Bugs()
print(bug.search_bug("数据显示错误"))